import React from 'react';
import { createRoot } from 'react-dom/client';
import { ConfigProvider } from 'antd';
import { Provider } from 'react-redux';
import zhCN from 'antd/lib/locale/zh_CN';
import App from './App';
import store from './store/store';
import './styles/Compatibility.css';
import './index.css';

// 浏览器兼容性检查
function checkBrowserCompatibility() {
  const userAgent = navigator.userAgent;
  let browser = '';
  let version = '';

  // 检测浏览器类型和版本
  if (userAgent.indexOf('MSIE') > -1 || userAgent.indexOf('Trident') > -1) {
    browser = 'IE';
    const match = userAgent.match(/(?:MSIE |rv:)(\d+(\.\d+)?)/);
    version = match ? parseFloat(match[1]) : 0;
  } else if (userAgent.indexOf('Edge') > -1) {
    browser = 'Edge';
    const match = userAgent.match(/Edge\/(\d+(\.\d+)?)/);
    version = match ? parseFloat(match[1]) : 0;
  } else if (userAgent.indexOf('Chrome') > -1) {
    browser = 'Chrome';
    const match = userAgent.match(/Chrome\/(\d+(\.\d+)?)/);
    version = match ? parseFloat(match[1]) : 0;
  } else if (userAgent.indexOf('Firefox') > -1) {
    browser = 'Firefox';
    const match = userAgent.match(/Firefox\/(\d+(\.\d+)?)/);
    version = match ? parseFloat(match[1]) : 0;
  } else if (userAgent.indexOf('Safari') > -1) {
    browser = 'Safari';
    const match = userAgent.match(/Version\/(\d+(\.\d+)?)/);
    version = match ? parseFloat(match[1]) : 0;
  }

  // 检查移动设备
  const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent);

  // 检查操作系统
  const isIOS = /iPhone|iPad|iPod/i.test(userAgent);
  const isAndroid = /Android/i.test(userAgent);

  // 最低版本要求
  const minVersions = {
    IE: 11,
    Edge: 79,
    Chrome: 60,
    Firefox: 60,
    Safari: 11
  };

  // 检查浏览器版本
  if (browser && version < minVersions[browser]) {
    alert(`您的浏览器版本过低，请升级到最新版本。\n当前浏览器: ${browser} ${version}\n最低要求版本: ${minVersions[browser]}`);
    return false;
  }

  // 检查移动设备兼容性
  if (isMobile) {
    if (isIOS) {
      const iosVersion = parseFloat(userAgent.match(/OS (\d+)_(\d+)/)?.[1] || '0');
      if (iosVersion < 11) {
        alert('您的iOS版本过低，请升级到iOS 11或更高版本。');
        return false;
      }
    } else if (isAndroid) {
      const androidVersion = parseFloat(userAgent.match(/Android (\d+)/)?.[1] || '0');
      if (androidVersion < 7) {
        const message = `
您的Android版本过低，无法获得最佳体验。
当前版本: Android ${androidVersion}
最低要求: Android 7.0

建议操作：
1. 检查系统更新
2. 升级到最新版本
3. 或使用其他设备访问

注意：低版本Android可能存在安全风险，建议及时更新系统。
`;
        alert(message);
        return false;
      }
    }
  }

  return true;
}

// 检查浏览器兼容性
if (checkBrowserCompatibility()) {
  const container = document.getElementById('root');
  const root = createRoot(container);
  root.render(
    <Provider store={store}>
      <ConfigProvider locale={zhCN}>
        <App />
      </ConfigProvider>
    </Provider>
  );
} 